This invention relates to improved means and methods for accessing data stored in a computer memory, and more particularly to improved means and methods for providing interleaving for a system employing a plurality of memory modules.
It is well known in the art that, in a computer system employing a plurality of memory modules, the speed of memory accessing can be significantly increased by arranging for the storing of sequential memory addresses in different modules, and then accessing the modules in an interleaved manner. As a result, the total time required to access a sequence of memory locations can be much reduced, since several memory accesses may be overlapped by a high-speed data processor. Two-way and four-way interleaving are common. More specific information regarding such interleaving can be found in Encyclopedia of Computer Science and Engineering, Anthony Ralston, Editor, Second Edition, pages 791-792.
A problem presented by presently known interleaved memory accessing systems is that the granularity of interleaving is predetermined and fixed. Thus, when additional modules are added, they have to be added in multiples of the interleaving. For example, if 4-way interleaving is employed, additional modules have to be added in multiples of four. This can be expensive to a customer who may actually need only one additional module. On the other hand, a system having eight memory modules, would lose half of its memory if one module failed. This problem is compounded by the fact that, today, memory modules are typically provided in a package containing multiple modules, four modules per package being typical. Thus, in a system having fixed interleaving, an entire multiple-module package would have to be changed if only one module fails.
Accordingly, it is a broad object of the present invention to provide improved means and methods for providing memory interleaving in a system having a plurality of memory modules.
Another object of the invention is to provide an interleaved memory module system in which interleaving among modules is automatically variable dependent upon the number of modules in the system.
A further object of the invention is to provide an interleaved memory module system which at all times is able to make use of all operable memory modules.
A still further object of the invention is to provide an interleaved memory module system in which the failure of a memory module in a package does not prevent use of the other modules in the package.
Yet another object of the invention is to provide the objects of the foregoing objects in a relatively simple and inexpensive manner.
The above objects are accomplished in a particular preferred embodiment of the invention by providing for automatic, variable, interleaved addressing of a plurality of memory modules operable to automatically vary the interleaving of particular ones of the modules dependent upon the number of operable memory modules present in the system.
The specific nature of the invention as well as other objects, features, advantages and uses of the invention will become evident from the following description of a preferred embodiment of the invention in conjunction with the accompanying drawings.